function isProper(string) {
     var countBlanks = 0;
     var flag = true;
	for (var i=0; i < string.length; i++) {
    	var letra = string.charAt(i);
        if (" ".indexOf(letra) != -1)
			countBlanks += 1;
	}
	if ( countBlanks == string.length ){
		flag = false;
	}
   return flag;
}

function validarTexto(string) {
    for (var i=0, output='', validos="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; i<string.length; i++)
       if (validos.indexOf(string.charAt(i)) != -1)
          output += string.charAt(i)
    return output;
}

 function validarMail() {
        correoE = document.getElementById('correoE');       
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (!filter.test(correoE.value)) {
            alert('Ingresar un correo valido. ' + correoE.value);            
        } 
    }


function validateFrm(type, value, fieldname, length) { 
    var i,p,q,msg,num,min,max,errors='',args=validateFrm.arguments,error=false,errorT=false,errorN=false;
	var patron = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890._";
        var patron2 = "=<>\\/\"'¿?¡!;(){}[]";
	var ret;

        var patronEmail = new RegExp("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+[a-zA-Z0-9]{2,6}$");

        if (value) {
            if ((value)!="") {
                if (type.indexOf('isText')!=-1) {
                    for(i=0; i<value.length; i++){
                        if (patron.indexOf(value.charAt(i),0) == -1){
                           // errors+='- \"'+fieldname+'\" contiene caracteres invalidos: ' + value + '.\n';;
                            errorT = true;
                            error = true;
                        } else {
                            if (isProper(value) == false) {
                                errors+='- \"'+fieldname+'\" contiene solo espacios.\n';
                                error = true;
                            } else if (length > 0 && value.length < length) {
                                errors+='- \"'+fieldname+'\" debe tener una longitud m�nima de ' + length + ' Car�cteres.\n';
                                error = true;
                            }
			}
                    }
                } else 	if (type.indexOf('isContra') !=-1) {
                    for(i=0; i<value.length; i++){
                        if (patron2.indexOf(value.charAt(i),0) != -1){
                           // errors+='- \"'+fieldname+'\" contiene caracteres invalidos: ' + value + '.\n';;
                            errorT = true;
                            error = true;
                        } else {
                            if (isProper(value) == false) {
                                errors+='- \"'+fieldname+'\" contiene solo espacios.\n';
                                error = true;
                            } else if (length > 0 && value.length < length) {
                                errors+='- \"'+fieldname+'\" debe tener una longitud m�nima de ' + length + ' Car�cteres.\n';
                                error = true;
                            }
			}
                    }
    	    	} else 	if (type.indexOf('isSignedNum') != -1 || type.indexOf('isNum') != -1) {
                    ////////////////////
                    var numeros="0123456789";
                      for(i=0; i<value.length; i++){
                        if (numeros.indexOf(value.charAt(i),0) == -1){
                            // errors+='- \"'+fieldname+'\" debe contener un numero entero.\n';
                            errorN = true;
                            error = true;
                        } else {
                        if (length > 0 && value.length < length) {
                            errors+='- \"'+fieldname+'\" debe tener una longitud minima de ' + length + ' Caracteres.\n';
                            error = true;
                        }
                    }
                      }
                } else if (type.indexOf('isEmail')!=-1) {
                    p=value.indexOf('@');
                    if (p<1 || p==(value.length-1)) {
                        errors+='- \"'+fieldname+'\" debe contener una direccion de correo electronico.\n';
                        error = true;
                    } else if (!value.match(patronEmail)) {
                        errors+='- \"'+fieldname+'\" contiene una direccion de correo invalida: ' + value + '.\n';
                        error = true;
                    }
                }
                if (errorT) {
                    errors+='- \"'+fieldname+'\" contiene caracteres invalidos' + '.\n';;
                } else if (errorN) {
                    errors+='- \"'+fieldname+'\" debe contener un numero entero.\n';
                }

			}
		} else if (type.charAt(0) == 'R') {
                errors += 'El campo \"'+fieldname+'\" es obligatorio.\n';
				error = true;
        }
     ret = errors;
     return ret;
     return false;
}
function validateFieldsFrmInicio() {
    var mensaje = "";
    var usuario = document.getElementById("frmInicio:itusuario").value;
    var contrasena = document.getElementById("frmInicio:itcontrasena").value;
    mensaje = mensaje + validateFrm('R', usuario, 'Usuario', '4');
    mensaje = mensaje + validateFrm('R', contrasena, 'Contrasena', '0');
    mensaje = mensaje + validateFrm('isText', usuario, 'Usuario', '3');
    mensaje = mensaje + validateFrm('isContra', contrasena, 'Contrasena', '2');
    if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}
}

function validateFieldsFrmInicioWL() {
    var mensaje = "";
    var usuario = document.getElementById("frmInicio:itusuario").value;
    var contrasena = document.getElementById("frmInicio:itcontrasena").value;
    mensaje = mensaje + validateFrm('R', usuario, 'Usuario', '4');
    mensaje = mensaje + validateFrm('R', contrasena, 'Contrasena', '0');
    mensaje = mensaje + validateFrm('isEmail', usuario, 'Usuario', '3');
    if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}
}

function validateFieldsFrmConsulta() {
    var mensaje = "";
    var documento = document.getElementById("frmConsulta:itdoc").value;
    mensaje = mensaje + validateFrm('R', documento, 'Documento', '0');
     mensaje = mensaje + validateFrm('isText', documento, 'Documento', '2');
    if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}
}

function validateFieldsFrmNewNota() {
    var mensaje = "";
    var porcentaje = document.getElementById("frmNewNota:itporcentaje").value;
    var restante = document.getElementById("frmNewNota:otrestante").value;
    var frealizacion = document.getElementById("frmNewNota:fRealizacion").value;
    mensaje = mensaje + validateFrm('R', porcentaje, 'Usuario', '0');
   // mensaje = mensaje + validateFrm('R', frealizacion, 'Contrasena', '0');
    mensaje = mensaje + validateFrm('isSignedNum', porcentaje, 'Porcentaje', '0');
   // mensaje = mensaje + validateFrm('isText', contrasena, 'fRealizacion', '2');
    if (porcentaje > 100) {
        mensaje = mensaje + "Por favor verifique el porcentaje de la nota"
            alert (mensaje);
            return false;
    }

    if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}
}


function validateFieldsFrmUsuario(){
	var mensaje = "";
	var nombre1 =document.getElementById("frmUsuarios:itnombre1").value;
        var nombre2 =document.getElementById("frmUsuarios:itnombre2").value;
	var apellido1 =document.getElementById("frmUsuarios:itapellido1").value;
        var apellido2 =document.getElementById("frmUsuarios:itapellido2").value;
	var login =document.getElementById("frmUsuarios:itlogin").value;
	var clave =document.getElementById("frmUsuarios:itclave").value;
	var correo =document.getElementById("frmUsuarios:itemail").value;
	mensaje = mensaje + validateFrm('R', nombre1, 'Nombre1', '0');
        mensaje = mensaje + validateFrm('R', nombre2, 'Nombre2', '0');
	mensaje = mensaje + validateFrm('R', apellido1, 'Apellido1', '0');
        mensaje = mensaje + validateFrm('R', apellido2, 'Apellido2', '0');
	mensaje = mensaje + validateFrm('R', login, 'Login', '0');
	mensaje = mensaje + validateFrm('R', clave, 'Contrasenna', '0');
	mensaje = mensaje + validateFrm('R', correo, 'Correo', '0');
        mensaje = mensaje + validateFrm('isSignedNum', login, 'Login', '5');
	mensaje = mensaje + validateFrm('isText', nombre1, 'Nombre1', '3');
        mensaje = mensaje + validateFrm('isText', nombre2, 'Nombre2', '3');
	mensaje = mensaje + validateFrm('isText', apellido1, 'Apellido1', '3');
        mensaje = mensaje + validateFrm('isText', apellido2, 'Apellido2', '3');
	mensaje = mensaje + validateFrm('isEmail', correo, 'Correo', '3');
	if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}	
		
}

function validateFieldsFrmCambioClave(){
	var mensaje = "";
	var claveActual  = document.getElementById("frmCambioClave:itreClave").value;
	var repiteClaveNueva  = document.getElementById("frmCambioClave:itreClaveNueva").value;
	mensaje = mensaje + validateFrm('R', claveActual, 'Contrasenna', '0');
	mensaje = mensaje + validateFrm('R', repiteClaveNueva, 'Repita contrasenna', '0');
	if (claveActual != repiteClaveNueva){
		mensaje = mensaje + "Las claves no coinciden";	
	}
	
	if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}	
}

function ValidarFe(Cadena){   
 	 var msg = ""; 	 
     var Fecha= new String(Cadena)   // Crea un string  
     //var RealFecha= new Date()   // Para sacar la fecha de hoy      
     // Cadena A�o 
      //alert("paso 1.1") 
     var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length))
     //alert("paso 1.2 "+Ano);  
     //Cadena Mes  
     var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")))
     //alert("paso 1.3 "+Mes); 
     // Cadena D�a  
     var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")))
     //alert("paso 1.4 "+Dia);  
   
     // Valido el a�o  
	 if(Cadena.length == 10 && Cadena.split("/").length == 3){   
	    if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){  
	            msg = msg+'Año inválido \n';
	        //return false  
	    }  
	    // Valido el Mes  
	    if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){  
	        msg = msg+'Mes inválido\n';
	        //return false  
	    }  
	    // Valido el Dia  
	    if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){  
	       msg = msg+'Día inválido\n';
	       //return false  
	    }  
	    if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {  
	        if (Mes==2 && Dia > 28 || Dia>30) {  
	            msg = msg+'Día inválido'
	       }  
	    }  
	 }else{
	 	msg = msg+'Formato de fecha inválido dd/mm/aaaa \n';
	 }	 
   return msg;    
   //para que envie los datos, quitar las  2 lineas siguientes  
   //alert("Fecha correcta.")  
   //return true;    
}  

function fechaMenorOIgualFeActual(fecDigito){ 
    var bRes = false; 
    var sMes0 = fecDigito.substr(0, 2);
    var sDia0 = fecDigito.substr(3, 2);
    var sAno0 = fecDigito.substr(6, 4);
    var RealFecha= new Date();
     
    if (RealFecha.getYear() > parseInt(sAno0)){bRes = true;
    }else { 
	   if (RealFecha.getYear() == parseInt(sAno0)){
	    	if ((RealFecha.getMonth()+1) > parseInt(sMes0)){bRes = true;
	    	}else if ((RealFecha.getMonth()+1) == parseInt(sMes0)){
		      		if (RealFecha.getDate() >= parseInt(sDia0)) bRes = true;
	    	} 
	   } 
    } 
    if(!bRes){
    	return ("la fecha tiene que ser menor o igual a la fecha actual\n\n"+
    			"FECHA ACTUAL:"+RealFecha.getDate()+"/"+(RealFecha.getMonth()+1)+"/"+RealFecha.getYear()); 
    }else{
    	return "";
    }
     
}  

function desabilitarLimpiarCampos(myElement){
	if(myElement.value == 'P'){
		document.getElementById("frmInconsistencias:numeroTransaccion").disabled=false;
		document.getElementById("frmInconsistencias:ftransaccion").disabled=false;
		document.getElementById("frmInconsistencias:valor").disabled=false;
		document.getElementById("frmInconsistencias:pin").disabled=true;
		document.getElementById("frmInconsistencias:pin").value = '';		
		document.getElementById("frmInconsistencias:numeroTransaccion").focus();
	}else if(myElement.value == 'I'){
		document.getElementById("frmInconsistencias:pin").disabled=false;
		document.getElementById("frmInconsistencias:numeroTransaccion").disabled=true;
		document.getElementById("frmInconsistencias:ftransaccion").disabled=true;
		document.getElementById("frmInconsistencias:valor").disabled=true;
		document.getElementById("frmInconsistencias:numeroTransaccion").value = '';
		document.getElementById("frmInconsistencias:ftransaccion").value = '';
		document.getElementById("frmInconsistencias:valor").value = '';
		document.getElementById("frmInconsistencias:pin").focus();
	}else{
		
	}
}


function validateFieldsFrmLogin(){
	var mensaje = "";
	var usuario   = document.getElementById("loginForm:itCedula").value;
	var contrasenna  = document.getElementById("loginForm:isPasswordLogin").value;
	
	mensaje = mensaje + validateFrm('R', usuario, 'Usuario', '0');
	mensaje = mensaje + validateFrm('R', contrasenna, 'Contrasenna', '0');
	
	if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}	
}

function validateFieldsFrmCreacion() {
    var mensaje = "";
    var dato = document.getElementById("frmCreacion:itDato").value;

    mensaje = mensaje + validateFrm('R', dato, 'Dato', '0');
    mensaje = mensaje + validateFrm('isText', dato, 'Dato', '2');
    if (mensaje==""){
		return true;
	}else{
		alert(mensaje);
		return false;
	}
}